﻿using System;
using System.Collections.Generic;
namespace Model
{
    /// <summary>
    /// 描述:SOP_ProductKey对应的实体类
    /// 作者:Fuyuanzhao
    /// 日期:2013/4/16 16:43:32
    ///</summary>
    [Serializable]
    public class ProductKey
    {
        /// <summary>
        /// 前六位是老板的ID，后三位是老板下面的用户12位为独立的授权ID
        /// </summary>
        public String VipUserID
        {
            get;
            set;
        }
        /// <summary>
        /// 经销商ID(自增长ID）
        /// </summary>
        public Int32 AgencyID
        {
            get;
            set;
        }
        /// <summary>
        /// 经销商名称
        /// </summary>
        public String AgencyName
        {
            get;
            set;
        }
        /// <summary>
        /// 商品条形码
        /// </summary>
        public String BarCode
        {
            get;
            set;
        }
        /// <summary>
        /// 产品账户，用户名（中英文，最长32字符）,目前这里没有老板，总部，分店前缀，（HQ,SP等）到时候同步到POS系统CR_VIPUser表添加
        /// </summary>
        public String ProductUserName
        {
            get;
            set;
        }
        /// <summary>
        /// 产品账户，用户名（中英文，最长32字符）,目前这里没有老板，总部，分店前缀，（HQ,SP等）到时候同步到POS系统CR_VIPUser表添加
        /// </summary>
        public String ObjProductUserName
        {
            get
            {
                if (ProductUserName.Length > 0)
                {
                    if (UserType == 20)
                    {
                        return "HQ" + ProductUserName;
                    }
                    else if (UserType == 30)
                    {
                        return "SP" + ProductUserName;
                    }
                    else
                    {
                        return ProductUserName;
                    }
                }
                else
                {
                    return string.Empty;
                }
            }
        }
        /// <summary>
        /// 密码（MD5加密，存8,16位）
        /// </summary>
        public String Password
        {
            get;
            set;
        }
        /// <summary>
        /// 动态密钥条形码
        /// </summary>
        public String KeyBarcode
        {
            get;
            set;
        }
        /// <summary>
        /// 动态密钥的密钥
        /// </summary>
        public String AuthKey
        {
            get;
            set;
        }
        /// <summary>
        /// 类型:10表示老板，20表示总部，30表示分店
        /// </summary>
        public Int32 UserType
        {
            get;
            set;
        }

        /// <summary>
        /// 类型:10表示老板，20表示总部，30表示分店
        /// </summary>
        public String UserTypeName
        {
            get
            {
                if (BrandType == 10)
                {
                    return Common.XmlDataHerper.GetTextByValue("AccountType10", UserType.ToString());
                }
                else
                {
                    return Common.XmlDataHerper.GetTextByValue("AccountType", UserType.ToString());
                }
            }
        }
        /// <summary>
        /// 公司/门店 名称
        /// </summary>
        public String CompanyName
        {
            get;
            set;
        }
        /// <summary>
        /// 分店ID
        /// </summary>
        public Int32 StoreID
        {
            get;
            set;
        }
        /// <summary>
        /// 分店名称
        /// </summary>
        public String StoreName
        {
            get;
            set;
        }
        /// <summary>
        /// 门店面积
        /// </summary>
        public decimal AreaSize
        {
            get;
            set;
        }
        /// <summary>
        /// 门店激活状态 0 未使用 5使用未激活 10使用激活
        /// </summary>
        public Int32 StoreActiveStatus
        {
            get;
            set;
        }
        /// <summary>
        /// 地区ID
        /// </summary>
        public Int32 AreaID
        {
            get;
            set;
        }
        /// <summary>
        /// 地区名称
        /// </summary>
        public String AreaName
        {
            get;
            set;
        }
        /// <summary>
        /// 地址
        /// </summary>
        public String Addresses
        {
            get;
            set;
        }
        /// <summary>
        /// 邮编
        /// </summary>
        public String PostCode
        {
            get;
            set;
        }
        /// <summary>
        /// 电子邮件
        /// </summary>
        public String EMail
        {
            get;
            set;
        }
        /// <summary>
        /// 联系人
        /// </summary>
        public String LinkMan
        {
            get;
            set;
        }
        /// <summary>
        /// 联系电话
        /// </summary>
        public String LinkTel
        {
            get;
            set;
        }
        /// <summary>
        /// 联系人手机
        /// </summary>
        public string LinkMobile
        {
            get;
            set;
        }
        /// <summary>
        /// 紧急联系人
        /// </summary>
        public String EmergencyContact
        {
            get;
            set;
        }
        /// <summary>
        /// 紧急联系电话/手机
        /// </summary>
        public String EmergencyTelephone
        {
            get;
            set;
        }
        /// <summary>
        /// 服务到期时间
        /// </summary>
        public DateTime? ServiceEndTime
        {
            get;
            set;
        }
        /// <summary>
        /// 服务是否过期
        /// </summary>
        public bool IsServiceExpire
        {
            get
            {
                if (ServiceEndTime.HasValue)
                {
                    if (ServiceEndTime.Value.CompareTo(DateTime.Now) > 0)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
                else
                {
                    return true;
                }
            }
        }
        /// <summary>
        /// 授权ID注册日期
        /// </summary>
        public DateTime? RegisterDate
        {
            get;
            set;
        }
        /// <summary>
        /// 延期类型，默认2 ，已经申请过延期4
        /// </summary>
        public Int32 DelayType
        {
            get;
            set;
        }
        /// <summary>
        /// 延迟时长 (天)
        /// </summary>
        public Int32 DelayTime
        {
            get;
            set;
        }
        /// <summary>
        /// 延期开始时间
        /// </summary>
        public DateTime? DelayStartTime
        {
            get;
            set;
        }
        /// <summary>
        /// 是否已出售给商户  ( 4新增添加或新增并绑定， 默认5 ，6 表示审核中，7 缴纳维护费审核中，8注销审核中，9 闭户审核 10：表示开通，  11 UKEY置换审核中 ，12维护费延期审核中，-10表示关闭)
        /// </summary>
        public Int32 VipUserStatus
        {
            get;
            set;
        }
        /// <summary>
        /// 产品类型   10  标准版，20 精英版，30 独立授权ID
        /// </summary>
        public Int32 ProductType
        {
            get;
            set;
        }
        /// <summary>
        /// 产品类型   10  标准版，20 精英版，30 独立授权ID
        /// </summary>
        public String ProductTypeName
        {
            get { return Common.XmlDataHerper.GetTextByValue("ProductType", ProductType.ToString()); }
        }
        /// <summary>
        /// 产品是否分配给经销商  5未分配(默认)  6已发货未确认   7 已退货未确认  10已分配
        /// </summary>
        public Int32 AllotStatus
        {
            get;
            set;
        }
        /// <summary>
        /// 开户类型 0（默认）, 10 试用，20 正式,30 由试用转正式
        /// </summary>
        public Int32 OpenType
        {
            get;
            set;
        }
        /// <summary>
        /// 开户类型 10 试用（默认），20 正式 ,30 由试用转正式
        /// </summary>
        public string OpenTypeName
        {
            get
            {
                if (ServiceEndTime.HasValue)
                {
                    if (OpenType > 0)
                    {
                        int openStatus = OpenType;
                        if (VipUserStatus == -10)
                        {
                            openStatus = 40;//闭户
                        }
                        else
                        {
                            if (OpenType == 10 || (OpenType == 30 && VipUserStatus == 6))//转正审核期也为试用中
                            {
                                if (ServiceEndTime.Value < DateTime.Now)
                                {
                                    openStatus = 11;//试用结束
                                }
                                else
                                {
                                    openStatus = 10;//试用中
                                }
                            }
                            else
                            {
                                TimeSpan diffDateTime = ServiceEndTime.Value - DateTime.Now;
                                if (diffDateTime.TotalDays < 30)
                                {
                                    openStatus = 21;//缴费提醒
                                }
                                else
                                {
                                    openStatus = 20;//正常
                                }
                            }
                        }

                        return Common.XmlDataHerper.GetTextByValue("OpenType", openStatus.ToString());

                    }
                    else
                    {
                        return string.Empty;
                    }
                }
                else
                {
                    return string.Empty;
                }
            }
        }
        /// <summary>
        /// 维护费缴纳年限 以月为单位 半年 一年 二年 三年
        /// </summary>
        public Int32 ServiceMonth
        {
            get;
            set;
        }
        /// <summary>
        /// 备注
        /// </summary>
        public String Remark
        {
            get;
            set;
        }
        /// <summary>
        /// 更新信息操作人ID（系统账号）
        /// </summary>
        public Int32 UpdateOperatorId
        {
            get;
            set;
        }
        /// <summary>
        /// 更新操作人(系统账号）
        /// </summary>
        public String UpdateOperatorName
        {
            get;
            set;
        }
        /// <summary>
        /// 更新时间
        /// </summary>
        public DateTime? UpdateTime
        {
            get;
            set;
        }
        /// <summary>
        /// 操作人ID（系统账号）
        /// </summary>
        public Int32 OperatorId
        {
            get;
            set;
        }
        /// <summary>
        /// 操作人(系统账号）
        /// </summary>
        public String OperatorName
        {
            get;
            set;
        }
        /// <summary>
        /// 添加时间
        /// </summary>
        public String AddTime
        {
            get;
            set;
        }

        /// <summary>
        /// 申请类型  10 开户申请 20 维护费缴纳 30注销授权ID 40 闭户申请
        /// </summary>
        public int OpenApplyType
        { get; set; }
        /// <summary>
        /// 数据库类型,默认为5，5:代表多品牌数据库，10:代表单品牌数据库
        /// </summary>
        public int BrandType { get; set; }

        /// <summary>
        /// 商户类型（5：多品牌商户（老的多品牌）；10：单品牌商户；15：多品牌商户（针对单品牌里面创建的多品牌））
        /// </summary>
        public int BossType { get; set; }

        /// <summary>
        /// 品牌商类型  5 多品牌  10 单品牌
        /// </summary>
        public string BrandTypeName
        {
            get
            {
                if (BossType != 0)
                {
                    if (BossType != 15)
                    {
                        return Common.XmlDataHerper.GetTextByValue("BrandType", BossType.ToString());
                    }
                    else
                    {
                        return Common.XmlDataHerper.GetTextByValue("BrandType", "5");
                    }
                }
                return string.Empty;
            }
        }

        /// <summary>
        /// 此产品相关的授权ID
        /// </summary>
        public IList<ProductKey> ProductKeyList
        {
            get;
            set;
        }
        /// <summary>
        /// 自增长主键
        /// </summary>
        public int ID { get; set; }
        /// <summary>
        /// 品牌商识别码 （用于单品牌）
        /// </summary>
        public string CompanyCode { get; set; }
        /// <summary>
        /// 登录账号（多品牌、单品牌账号）
        /// </summary>
        public string LoginAccount { get; set; }

        /// <summary>
        /// 专柜数量,总共可以开多少个账号
        /// </summary>
        public int StoreNum
        {
            get;
            set;
        }
        /// <summary>
        /// 专柜标签：5专柜，10门店，15药店
        /// </summary>
        public int StoreLable
        {
            get;
            set;

        }
        /// <summary>
        /// 审核状态   5 已申请（默认） ，-5 已取消，10 已批准，-10 已拒绝
        /// </summary>
        public int CheckStatus
        {
            get;
            set;
        }
        /// <summary>
        /// 审核人
        /// </summary>
        public int CheckerID
        {
            get;
            set;
        }
        /// <summary>
        /// 审核人名称
        /// </summary>
        public string CheckerName
        {
            get;
            set;
        }
        /// <summary>
        /// 审核日期
        /// </summary>
        public DateTime CheckTime
        {
            get;
            set;
        }
        /// <summary>
        /// 审核意见
        /// </summary>
        public string CheckReason
        {
            get;
            set;
        }
        /// <summary>
        /// APP是否满了(1:满，0：空)
        /// </summary>
        public int IsAppFull
        {
            get;
            set;
        }
        /// <summary>
        /// 冠军美顾审核状态
        /// </summary>
        public IList<Model.AppApply> AppList
        {
            get;
            set;
        }

        ///// <summary>
        ///// 冠军美顾审核状态
        ///// </summary>
        //public Model.AppApply App6
        //{
        //    get;
        //    set;
        //}
        /// <summary>
        /// 爱美派审核状态
        /// </summary>
        public Model.AppApply App5
        {
            get;
            set;
        }
        ///// <summary>
        ///// 皮肤诊断审核状态
        ///// </summary>
        //public Model.AppApply App1
        //{
        //    get;
        //    set;
        //}
        ///// <summary>
        ///// 试妆镜审核状态
        ///// </summary>
        //public Model.AppApply App25010
        //{
        //    get;
        //    set;
        //}

        /// <summary>
        /// 商户版本
        /// </summary>
        public Int32 BossVersionType
        {
            get;
            set;
        }
        /// <summary>
        /// 商户版本
        /// </summary>
        public String BrandName
        {
            get;
            set;
        }
        /// <summary>
        /// 注册id
        /// </summary>
        public Int32 CompanyId
        {
            get;
            set;
        }
        /// <summary>
        /// UserId
        /// </summary>
        public Int32 UserId
        {
            get;
            set;
        }
        /// <summary>
        /// 联系人QQ
        /// </summary>
        public String ContactQQ
        {
            get;
            set;
        }
        /// <summary>
        /// 注册来源，默认为0（0：SOP注册；1：云管理官网注册；）
        /// </summary>
        public Int32 SrcFlag
        {
            get;
            set;
        }
    }
}

